package com.tedu.api.thread;

import org.testng.annotations.Test;

/**
 * setPriority()    设置线程优先级---决定执行那个线程
 * 单线程：创建一个线程做一件事
 * 多线程：创建多个线程左不痛的是情
 * 线程优先级范围：1-10  数值越大呗执行的几率越大
 *
 * 案例：创建三个线程，风别指定三个线程优先级max    10
 *                                  1000次：老大一声吼，地球抖三抖
 *                                  normal 5
 *                                  1000次：老二一出手，文字全飞走
 *                                  min    1
 *                                  1000次：老三一张口，笑到一头牛
 *       使用Lambda完成三个线程创建【多线程】
 *       总结：创建多条线程【多线程】同时并发运行时，不能主动获取cpu时间片
 *       也不能决定时间片长度，只能被动分配
 *       如果调整优先级，按照优先级数据大小，确定是否加大获取cpu时间片
 *       几率
 */
public class Thread_Priority {
    public static void main(String[] args){
        //创建三个线程

          Thread max=new Thread(()->{for(int i=0;i<1000;i++){
                System.out.println("老大一声吼，地球抖三抖");
          }
            });



        Thread normal=new Thread(()->{for(int i=0;i<1000;i++){
            System.out.println("老二一出手，文字全飞走");
        }
        });



        Thread min=new Thread(()->{for(int i=0;i<1000;i++){
            System.out.println("老三一张口，笑到一头牛");
        }
        });
        max.setPriority(10);
        min.setPriority(Thread.MIN_PRIORITY);

        max.start();
        normal.start();
        min.start();

    }

    }

